Method and apparatus for programming anti-fuse devices

ABSTRACT

Improved apparatus and methods for programming anti-fuse devices utilized in programmable semiconductor chips are described. An anti-fuse device circuit is disclosed wherein an anti-fuse device is connected between two programming transistors, and each programming transistor is connected to a separate voltage supply bus and to a control bus network having, for example, a common control bus or separate control buses. Interconnection structures of anti-fuse devices can be formed and a targeted anti-fuse device can be programmed by connecting a programming voltage to the first associated supply bus, by connecting another voltage or ground potential to the second associated supply bus, and by turning on the appropriate control bus line or lines so that the programming transistors conduct to provide a voltage differential across the targeted anti-fuse device. Several anti-fuse device interconnection embodiments are discussed, and the choice of a particular scheme to use for fabricating a programmable chip is dependent on the desired design features and on ease of software implementation.

This is a continuation of copending application Ser. No. 08/210,000 filed on Mar. 11, 1994, which is a continuation of Ser. No. 07/931,048 filed on Aug. 17, 1992, now U.S. Pat. No. 5,294,846.

FIELD OF THE INVENTION

The present invention relates to programmable semiconductor chip technology. More specifically, the present invention pertains to circuitry and methods for programming interconnection structures of anti-fuse devices.

BACKGROUND

Most commercial integrated circuits ("chips") have predetermined logic functions which are established by the manufacturer. Programmable logic semiconductor device chips (hereinafter "programmable chips") are a class of integrated circuits that can be modified by an end user to achieve synthesis of arbitrary logic that is selected by one user. Anti-fuse devices have proven to be useful for interconnecting elements of such programmable chips.

An anti-fuse device is a circuit element which is normally non-conducting. It becomes a low impedance conductor when its state is changed by a programming action. A programming action is defined as the application of a voltage above a predetermined threshold level to an anti-fuse device. Anti-fuse devices are used to establish the interconnecting paths for signals between standardized functional logic blocks or other elements of the programmable chip.

User-programmable array logic circuits using anti-fuse devices to implement arbitrary logic functions are known. One prior art method, disclosed in U.S. Pat. No. 4,758,745, uses shunting transistors to provide a voltage across the terminals of an anti-fuse device to program the device. More specifically, a string of anti-fuse devices is constructed with one shunting transistor in parallel with each anti-fuse device such that the transistors form a series string parallel to the anti-fuse string. To program an anti-fuse device, the series of shunting transistors on each side of the anti-fuse device to be programmed are made conductive. Signal buses oriented perpendicular to the string of anti-fuse devices are used to make the selected strings of shunting transistors conductive. Transistors may then be made conductive in desired patterns to program selected anti-fuse devices by controlling the signals on the signal buses. In addition, these shunting transistors can be used to observe or to inject voltages at a desired node in the programmable/programmed array logic circuit.

One problem with this technique is the shunting transistors have a considerable series resistance. Consequently, the series impedance of the series string of shunting transistors limits the amount of power that can forced into an anti-fuse device to program the anti-fuse device. Thus, in some circumstances the voltage drop across an anti-fuse device may not be sufficient to program some types of anti-fuse devices. This technique requires one programming transistor for every anti-fuse device in the system.

Another method for programming an array of anti-fuse devices, disclosed in U.S. Pat. No. 4,873,459, uses a row of transistors placed in parallel with the anti-fuse devices. This system enables programming a desired anti-fuse device using only two transistors in series with the anti-fuse device. These transistors are controlled by a signal bus that is parallel to the string of anti-fuse devices in which the anti-fuse device to be programmed is located. One disadvantage of this scheme is the requirement that an intermediate voltage be experienced by anti-fuse devices not meant to be programmed including the anti-fuse devices adjacent the anti-fuse device to be programmed. It is required that the intermediate voltage be insufficient to program spuriously a programmable element which may not be realizable with some types of anti-fuse devices. Another disadvantage of this scheme is that in order to observe voltages or to inject a voltage at a desired node, a second set of transistors is required. It is the second set of transistors, and not the programming transistors, which form the addressable virtual probe for observing internal test points to analyze the circuit connections of the programmable chip. Thus, this implementation limits the type of anti-fuse devices that can be used, and requires two programming transistors for every anti-fuse device.

There is thus a continuing need for improved circuits for programming anti-fuse devices that do not present large impedances, that improve selective application of programming devices, and that provide an addressable virtual probe without increasing the part count of the device.

SUMMARY OF THE INVENTION

It is an object of the present invention to provide for more efficient programming of anti-fuse devices. It is another object to program an anti-fuse device to a lower impedance by providing a greater voltage or a greater current, or both. Yet another object is to reduce the device part count for programming anti-fuse devices.

It is another object of the present invention to provide a transistor network for programming anti-fuse devices that also provides a virtual probe for testing the programmed circuit.

It is another objection of the present invention to provide for programming an anti-fuse device with no more than two programming transistors in series with the anti-fuse device. It is another object to use the same two series transistors to observe a voltage at a desired node in the programmable/programmed logic array circuit or to inject a voltage at a desired node. It is another object to provide for such programming and observation/injection using about one transistor for each anti-fuse device.

It is another object of the present invention to overcome the problem of spurious programming of any anti-fuse device by ensuring that no anti-fuse device is exposed to any significant voltage on the order of one half of the programming voltage.

The present invention teaches an improved apparatus and method for programming anti-fuse devices. Broadly, the invention concerns programming an anti-fuse device using only two programming transistors which are connected to different voltage supply buses and controlled to apply a differential voltage across the anti-fuse device sufficient to program the anti-fuse device to a low impedance condition.

One aspect of the invention is directed to a circuit for programming an anti-fuse device, which circuit can be applied to program any anti-fuse device in an integrated programmable chip. One embodiment of such a circuit involves a first voltage supply bus, a second voltage supply bus, a first programming transistor connected between the first voltage supply bus and one end of the anti-fuse device to be programmed, a second programming transistor connected between the second voltage supply bus and the other end of the anti-fuse device to be programmed, and a control bus network for selectively turning the first and second transistors ON and OFF. When used herein to describe the state of a transistor, the terms "ON" and "OFF" refer to the transistor being conducting and non-conducting respectively. Similarly, when used herein to describe the state of a control bus for a given transistor, the terms "ON" and "OFF" refer to a signal on the control bus that turns the given transistor ON and a signal on the control bus that turns the given transistor OFF, respectively.

One method of programming the anti-fuse device includes applying a first voltage V₁ to the first voltage supply bus, applying a second voltage V₂ to the second voltage supply bus, and applying a differential voltage, namely, V₁ -V₂ -X, across the anti-fuse device, where X is the net voltage drop across the first and second transistors, which connect the voltage buses to the anti-fuse device, in the ON state. Thus, if V₁ is greater than V₂ +X by more than the programming threshold voltage of the anti-fuse device, a programming action will occur and the anti-fuse device will be placed in its low impedance, conducting state. The method also is applicable to programming a series string of anti-fuse devices with a suitably large differential voltage applied at the ends of the string.

In the preferred embodiment, either V₁ or V₂ is at ground potential. The control bus network may be a single control bus for controlling the state of both transistors, or separate control buses may be used for each transistor. As is described in detail below, the use of common or different control buses for any one programming action is a matter of design choice.

Advantageously, the programming circuit of the present invention may be replicated and used to program any number of anti-fuse devices such that each anti-fuse device is connected between only two programming transistors which are in turn connected to different voltage supply buses.

Another aspect of the present invention is thus directed to a network of programming circuits for programming a string of anti-fuse devices which are a plurality of anti-fuse devices connected in series. One embodiment of such a network includes a first voltage supply bus, a second voltage supply bus, a plurality of first programming transistors respectively connected between the first voltage supply bus and one end of each of the plurality of anti-fuse devices, a plurality of second programming transistors respectively connected between the second voltage supply bus and the other end of each of the plurality of anti-fuse devices, and a control bus network for selectively turning ON a pair of first and second programming transistors. Thus, when any one pair of programming transistors is ON, the voltage difference between the first and second voltage buses is applied across the one anti-fuse device between the pair of programming transistors. In other words, each anti-fuse device is connected between the first and second voltage supply buses by a pair of first and second programming transistors and the pair of transistors are turned ON to program the anti-fuse device.

The method of programming one anti-fuse device of a string of anti-fuse devices using such a network includes applying a first voltage to the first voltage supply bus, applying a second voltage to the second voltage supply bus, turning ON the pair of programming transistors to apply the difference voltage across the anti-fuse device, and maintaining at least one programming transistor of each of the other pairs of programming transistors OFF so that no significant differential voltage is applied to the other anti-fuse devices of the string. Preferably, both programming transistors of the other pairs are maintained OFF.

The ends of each string of anti-fuse devices are preferably maintained as open circuits to prevent spurious signals from unintentionally programming a non-targeted anti-fuse device. The ends of each anti-fuse device string may be connected between a programmable chip input, a chip output, or a logic block. The user decides which functions are to be synthesized on the chip, and then programs the appropriate anti-fuse devices to create signal paths to realize the design. Given a programmable chip containing logic blocks and strings of anti-fuse devices defining possible signal paths, the user can write a software program to enable selectively the appropriate voltage supply buses and the control bus network on the chip in the proper sequence to program selected anti-fuse devices in a sequence that will achieve the desired interconnections. Because each device is isolated from the other devices, any programming sequence may be used. Thus, the present invention advantageously permits flexibility in the design of programmable chips containing anti-fuse devices.

In one embodiment of the invention, two programming transistors are provided for each anti-fuse device and there is one control bus that is connected to the two transistors associated with each anti-fuse device. Stated otherwise, for n anti-fuse devices in each series string, the part count is 2n programming transistors, n control buses, and 2 voltage supply buses.

Another embodiment of the present invention provides for reducing the total number of programming transistors fabricated on the chip such that only one programming transistor is connected between adjacent anti-fuse devices, and each anti-fuse device is programmed using the common programming transistor and a second programming transistor connected on its other side. In this embodiment, two control bus lines are required to turn ON the "pair" of programming transistors to program each anti-fuse device. In addition, the "second" programming transistors located on opposite sides of anti-fuse devices adjacent the anti-fuse device to be programmed are each turned OFF so that a differential voltage does not appear across those anti-fuse devices. Stated otherwise, for n anti-fuse devices in each series string, the part count is n+1 programming transistors, n+1 control bus lines, and 2 supply lines. Yet another embodiment provides for reducing both the number of programming transistors and the number of voltage supply bus lines such that voltage supply buses are shared between parallel strings of anti-fuse devices. Stated otherwise, for m parallel strings of n series anti-fuse devices, the part count is m+1 voltage supply buses, m(n+1) programming transistors, and n+1 control bus lines. In this embodiment, the sequence of programming anti-fuse devices is prudently selected, and the voltages applied to the voltage supply buses of adjacent strings are carefully selected to minimize unintentional voltage differentials across other anti-fuse devices. Other configurations are also possible dependent on which design features are desired, and on ease of software implementation.

Advantageously, the present invention permits each anti-fuse device to be programmed in isolation. This minimizes any undesired programming voltages being applied to other anti-fuse devices on the chip. Further, the interconnection structures made possible by utilizing the anti-fuse device programming circuit enable a minimum number of other anti-fuse devices to be in series during the programming of any one anti-fuse device. As a consequence, lower impedances are used in the programming transistors which in turn result in a high programming current and faster programming speed than is available with prior known techniques. In addition, interconnection arrangements can be realized using a minimum number of signal buses on the programmable chip, and a minimum number of anti-fuse devices, to minimize the fabrication area of the chip and to thus maximize the number of chips realizable per silicon wafer and the number of logic devices on each programmable chip.

BRIEF DESCRIPTION OF THE DRAWINGS

Further features and advantages of the invention will become apparent from the drawings and the following detailed description of the invention, in which like reference characters refer to like elements, and in which:

FIG. 1 is a simplified block diagram illustrating an interconnection structure of anti-fuse devices on part of a programmable semiconductor chip;

FIG. 2 is a schematic of a circuit for programming an anti-fuse device according to the present invention;

FIG. 3 is a schematic of a circuit for programming a anti-fuse device according to the present invention; plurality of interconnected anti-fuse devices based on the programming circuit of FIG. 2;

FIG. 4 is a schematic of a circuit for programming a plurality of interconnected anti-fuse devices according to another embodiment of the present invention;

FIG. 5 is a schematic of a circuit for programming a plurality of interconnected anti-fuse devices according to another embodiment of the present invention;

FIG. 6 is a partial schematic of a circuit for programming a plurality of interconnected anti-fuse devices according to another embodiment of the present invention;

FIG. 7 is a schematic of a circuit for programming a plurality of interconnected anti-fuse devices according to another embodiment of the present invention; and

FIG. 8 is a schematic of a circuit for programming a plurality of interconnected anti-fuse devices according to another embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 illustrates an interconnection structure of anti-fuse devices labelled "AF" on a portion of a programmable semiconductor chip 1 having inputs I₁ to I₅. The anti-fuse devices are shown connected to each other in strings to define horizontal and vertical signal paths, and diagonal anti-fuse devices are shown connected to horizontal and vertical strings to form connecting nodes. Anti-fuse devices can also be connected between various logic blocks, or between logic blocks and chip output terminals.

An anti-fuse device is normally non-conducting and becomes a low impedance conductor only when its state is changed. Anti-fuse devices are used to establish interconnecting signal paths to achieve synthesis of arbitrary logic functions specified by a circuit designer. The structure of anti-fuse devices programmable by a voltage are known. See, e.g., U.S. Pat. No. 4,823,181. It is understood that commercial products available from Actel use a blown oxide film in their anti-fuse devices.

Referring to FIG. 1, a standardized logic block 2 is shown having three inputs 4, 6 and 8. A signal path between input I₁ of the programmable chip 1 and the logic block 2 may be established by programming the anti-fuse devices which lie between the two points to become low impedance conductors. For example, anti-fuse devices 10, 12, 14 and 16 could be programmed to provide a signal path from I₁ to the input 4 of logic block 2. Alternately, anti-fuse devices 20, 22, 24 and 26 could be programmed to achieve the same result. Other connections also are possible as selected by the programmer.

Referring to FIG. 2, an embodiment according to the present invention of an anti-fuse device programing circuit 30 includes a single anti-fuse device 32 connected between two transistors T₁ and T₂. Transistors T₁ and T₂ are preferably field effect transistors having a source, drain and a gate. Transistor T₁ is connected to a voltage bus 34, and T₂ is connected to a voltage bus 36, and both transistors receive the same gate voltage via connection to a common control bus 38. To program the anti-fuse device 32 a voltage V₁ is applied to the voltage supply bus 34, a second voltage, preferably ground potential, is connected to the voltage supply bus 36, and a voltage is applied to the gates of both transistors along the control bus 38 to turn ON the transistors. The polarity of the anti-fuse device is determined by choosing which supply bus is raised to V₁. Also, the voltage that is applied to the control buses has to be sufficiently high to turn ON the transistors and generally has to be higher than V₁. The polarity of an FET source or drain connection does not make a difference in that the operation is the same whether a P or N type transistor is used, except that V₁ will be different, and the anti-fuse device can be polarity sensitive.

An important feature of the anti-fuse programming interconnection circuit 30 of FIG. 2 is that only two programming transistors are in series with the anti-fuse device. Consequently, the impedance presented by the programming transistors T₁ and T₂ is low and a large percentage of the difference between the supply voltage V₁ and ground potential will appear across anti-fuse device 32. Thus, either a smaller supply voltage or a higher programming voltage may be used to program an anti-fuse device. This permits flexibility in the design of programmable semiconductor chips utilizing strings of anti-fuse devices. It is noted that programming uses a voltage to initiate the programming action and current to deliver power to complete the programming action.

FIG. 3 depicts an interconnection Structure 40 which is formed by connecting a plurality of the programming circuits of FIG. 2 in the middle of several other like circuits on a semiconductor chip. The configuration 40 of FIG. 3 depicts three vertical strings or columns with each column containing three anti-fuse devices arranged in series or rows. Thus, nine anti-fuse devices AF_(x),y, wherein x refers to the column and y refers to the row, labeled AF₁₁ to AF₃₃, are shown connected to six supply buses 41 to 46 and to three control buses 47 to 49. Connected between the anti-fuse devices and the supply buses are the programming transistors T₁ to T₁₈. It should be understood that structure 40 is merely representative, and more or less anti-fuse devices may be connected in any particular column or may be connected in row configurations according to the design of the programmable semiconductor chip.

To program the anti-fuse device AF₂₂ of FIG. 3, supply bus 43 is connected to V₁, supply bus 44 is connected to ground, and control bus 48 is turned ON. All other pairs of voltage supply buses, namely the pair 41 and 42 and the pair 45 and 46, are connected to any voltage of convenience, such as ground potential as shown or V₁, so long as each pair is connected to the same voltage so that a voltage differential will not appear across a non-targeted anti-fuse device. This is to minimize the unintentional programming of an adjacent anti-fuse device such as AF₁₂ or AF₃₂ whose associated programming transistors T₃ and T₄, and T₁₅ and T₁₆, also will be turned ON by control bus 48. It is important to note that each vertical string of anti-fuse devices is maintained as an open circuit so that no paths exist which could cause spurious programming of other anti-fuse devices in a string. To program an adjacent anti-fuse device in another vertical string, i.e., an anti-fuse device in the same row and in a different column, for example, AF₃₂, the voltage V₁ would be applied to supply bus 45 and ground connected to supply bus 46 (or vice versa) while control bus 48 would remain ON. Preferably, voltage supply buses 43 and 44 are set to a common reference voltage at the same time.

The interconnection structure 40 of FIG. 3 requires the fabrication of two programming transistors for each anti-fuse device on the programmable chip. A reduction in the total amount of programming transistors is achieved if the interconnection arrangement 50 depicted in FIG. 4 is used. In this embodiment, each programming transistor is shared by two anti-fuse devices in a string, shown as columns. Advantageously, this results in having to fabricate only one Rote programming transistor per string than there are anti-fuse devices. Thus, in the three column strings and four rows per column network shown, only fifteen transistors (T₁ to T₁₅) are required to program the twelve anti-fuse devices shown.

Referring to FIG. 4, programming a particular anti-fuse device requires two control buses to be turned ON, and requires connecting one of the supply buses associated with that anti-fuse device to a programming voltage V₁, and connecting the other supply bus to ground potential. For example, to program AF₂₃ of FIG. 4, supply bus 53 is connected to V₁, supply bus 54 is connected to ground potential, and control buses 59 and 60 are turned ON. The other control buses are OFF, thus transistors T₈ and T₉ are made conducting to supply a voltage differential across anti-fuse device AF₂₃. To prevent programming any other anti-fuse devices which receive voltages when control buses 59 and 60 turn ON, their associated programming transistors must experience no voltage differential across their terminals. Thus, the pair of supply buses 51 and 52 and the pair of supply buses 55 and 56 must have the same applied voltage. This could be either V₁ or ground (as shown), whichever is convenient.

Again referring to FIG. 4, to program next another anti-fuse device on the same string, for example, anti-fuse device AF₂₂, supply buses 53 and 54 and control bus 59 would remain unchanged, control bus 60 would be turned OFF, and control bus 58 would be turned ON. Thus, transistors T₇ and T₈ would become conducting and the resulting voltage differential would program the anti-fuse device AF₂₂. This example illustrates that transistor T₈ is shared to program adjacent anti-fuse devices AF₂₂ and AF₂₃. Referring again to FIG. 4, to program multiple anti-fuse devices on the same string, for example AF₂₁, AF₂₂ and AF₂₃, control lines 57 and 60 would be turned ON to make transistors T₆ and T₉ conduct, and a large enough programming voltage V₁ would be connected to supply bus 53 while supply bus 54 was connected to ground potential. It also is possible to program simultaneously a string of anti-fuse devices AF₂₁, AF₂₂ and AF₂₃ by turning ON control buses 57, 58, 59, and 60 and setting supply bus 53 to V₁ and supply bus 54 to ground.

To program an anti-fuse device on a different string of FIG. 4, for example AF₁₂, supply bus 51 would be connected to V₁, supply bus 52 would be connected to ground, and control buses 58 and 59 turned ON so that programming transistors T₂ and T₃ would become conducting and a voltage differential would appear across AF₁₂. Further, a horizontal string of anti-fuse devices may be programmed by turning ON the desired transistors and applying the supply buses alternately to ground and V₁. Thus, if control buses 58 and 59 are ON, any of anti-fuse devices AF₂₂, AF₃₂ may be simultaneously programmed by setting their respective voltage buses to V₁ and ground. In other words, an appropriate supply voltage and current may be selected and applied by selected programming transistors in parallel or serial, to a plurality of anti-fuse devices to program simultaneously those anti-fuse devices.

Referring to FIG. 5, in accordance with another preferred embodiment, the total number of supply buses required program the strings of anti-fuse devices can be reduced by employing the interconnection structure 65. As shown, only four supply buses 66 to 69 are required to program the three strings of anti-fuse devices. For example, to program AF₂₃ supply bus 67 is connected to V₁, supply bus 68 is connected to ground, and control buses 72 and 73 are turned ON. To program next AF₃₃, supply bus 68 is connected to V₁, while supply bus 69 continues to be connected to ground potential, and control lines 72 and 73 remain ON.

Those anti-fuse devices not meat to be programmed that share programming transistors that are turned ON by from control buses 72 and 73 must experience no significant voltage differential across their terminals. Thus, in the example of programing AF₂₃, it is required that all voltage supply buses for the programming transistors for anti-fuse device strings to the left of supply bus 67 be at V₁, and all voltage supply buses for anti-fuse strings to the right of supply bus 68 be at ground potential.

If it were desired to program three anti-fuse devices in a string configured as shown in FIG. 5, the first associated supply bus would be connected to an appropriate programming voltage V₁, the second associated supply bus would be connected to ground potential, and the outermost programming transistors would be turned ON via their respective control buses. For example, if anti-fuse devices AF₃₂, AF₃₃ and AF₃₄ were to be programmed at the same time, supply bus 68 would be connected to programming voltage V₁, supply bus 69 would be connected to ground potential, and control lines 71 and 74 turned ON, while all other control lines are OFF, so that transistors T₁₂ and T₁₅ would conduct and a voltage differential appears across AF₃₂, AF₃₃ and AF₃₄. For the reasons already noted, in an alternate embodiment, anti-fuse devices AF₃₂, AF₃₃ and AF₃₄ could be simultaneously programmed by turning control buses 71, 72, 73, and 74 ON and setting supply bus 68 to V₁ and supply bus 69 to ground. Another embodiment provides for simultaneously programming anti-fuse devices AF₁₃, AF₂₃, and AF₃₃ by turning control buses 72 and 73 ON and setting supply bus 66 to V₁, supply bus 67 to ground, supply bus 68 to V₁, supply bus 69 to ground, supply buses to the left of bus 66 to V₁, and supply buses to the right to ground. Thus, both serial and parallel programming is possible, subject to the voltage and current carrying capacities of the control bus and supply bus and the driver circuits.

The anti-fuse device interconnect architectures described herein are particularly useful when combined with chip fabrication techniques that employ a four-level metal interconnect process as described in Wilson et al., "A Four-Metal Layer, High Performance Interconnect System for Bipolar and BiCMOS Circuits", Solid State Technology, November 1991, pp. 67-71. The availability of such four-level metal runs technology avoids any increase in the size of the semiconductor chip manufactured using the conventional two-level or three-level metal interconnect processes to implement the control bus and supply bus runs of the present invention.

FIG. 6 depicts an area of detail 80 of a programmable semiconductor chip which incorporates vertical and horizontal anti-fuse device strings and anti-fuse devices connecting the vertical and horizontal strings. Area 80 depicts a portion of one vertical device string 81 having anti-fuse devices AF_(V1) and AF_(V2), a portion of one horizontal device string 82 having anti-fuse devices AF_(H1) and AF_(H2), and a diagonal anti-fuse device AF_(D). The diagonal anti-fuse device AF_(D) connects the horizontal device string 82 and vertical device string 81 such that if AF_(D) were programmed to conduct, then anti-fuse devices AF_(H1), AF_(H2), AF_(V1) and AF_(V2) would be connected to a common node. The ends of the anti-fuse device strings 81 and 82 are maintained as open circuits during programming to avoid spurious programming signal paths. Referring to FIG. 6, to program the vertical string anti-fuse device AF_(V1), supply bus S_(V1) would be connected to a programming voltage V₁, supply bus S_(V2) would be connected to ground potential and the control buses C₁ and C₂ would be turned ON so that transistors T_(V1) and T_(V2) would become conducting. Likewise, to program the horizontal string anti-fuse device AF_(H2), supply bus S_(H1) would be connected to V₁, supply bus S_(H2) connected to ground, and the control buses C₃ and C₄ would be turned ON so that transistors T_(H1) and T_(H2) would become conducting. To program a diagonal anti-fuse device, one need only recognize that each node between any vertical string anti-fuse device connects to some transistor that connects to a vertical supply bus and which has its gate connected to a control bus, and conversely, each node between any horizontal string anti-fuse device connects to some transistor that connects to a horizontal supply bus and which has its gate connected to another control bus. Thus, a voltage differential can be connected across a diagonal device by turning ON one transistor usually associated with a vertical string anti-fuse device and one transistor usually associated with horizontal string anti-fuse device. For example, to program the diagonal anti-fuse device AF_(D) of FIG. 6, horizontal string supply bus S_(H1) is connected to V₁, control bus C₃ is turned ON, vertical string supply bus S_(V2) is connected to ground, and control bus C₂ is turned ON. Thus, both horizontal transistor T_(H1) and vertical transistor T_(V2) are made conducting and a voltage differential appears across AF_(D).

A programmable semiconductor chip having vertical and horizontal strings of anti-fuse devices may be difficult to program if the supply buses, control buses and programming transistors are not logically laid out. The embodiments of the present invention described above in FIGS. 3 to 6 lend themselves to simple rules for programming any anti-fuse device. For example, to program an anti-fuse device in a vertical string in the interconnection configuration of FIG. 6 wherein the vertical string is provided with parallel supply voltage buses and horizontal control buses, the two horizontal control buses adjacent to it must be turned ON, one of the vertical supply buses adjacent to it must be connected to programming voltage V₁ while the other supply bus adjacent to it is connected to ground potential, and all other control buses must be OFF. To program an anti-fuse device in a horizontal string connected in the configuration of FIG. 6, wherein the horizontal string is provided with adjacent horizontal voltage supply buses and vertical control buses, the vertical control buses adjacent to it must be turned ON, one of the horizontal supply buses adjacent to it must be connected to programming voltage V₁ while the other supply bus adjacent to it is connected to ground potential, and all of the other control buses must be OFF. In addition, the ends of both vertical and horizontal device strings must be open.

The programming circuits of the present invention are in essence superimposed in parallel to the logic circuit of the programmable chip ultimately implemented by programming of the anti-fuse devices. It has been discovered that the above described embodiments also may be used to the inject and observe diagnostic signals at selected locations in the logic circuit. Thus, the programming circuit also may be used to determine the response of the programmable chip to various signals within the chip. Importantly, any interior point of the chip can be accessed using the circuits for programming the anti-fuse devices. This is because the circuit is constructed by selectively inter-connecting anti-fuse devices, and each node at a terminal of an anti-fuse device is connected to a programming transistor. Each programming transistor is in turn connected between a voltage supply bus and the node and may be turned ON by a single control bus. Thus, a connection to any point is available either to inject a signal or to observe a signal via that voltage supply bus.

It is to be understood that other arrangements of anti-fuse devices employing the programming circuits described above are contemplated by the present invention. For example, FIG. 7 depicts vertical strings of anti-fuse devices which employ a one-horizontal, one-vertical control bus network configuration to program a particular anti-fuse device. This arrangement permits the use of fewer horizontal lines for programming the vertical device strings, and correspondingly, fewer vertical lines for programming horizontal device strings. In addition, once a horizontal control line has been turned ON, several column supply buses can be actuated to simultaneously program their devices to the same polarity, which permits faster anti-fuse device programming. However, the configuration of FIG. 7 requires a different and more complicated mode of signal observation.

Thus, ease of software implementation, both for programming of the anti-fuse devices and for diagnostic signal analysis should be considered when deciding which anti-fuse device interconnection architecture to fabricate. In addition, the amount of programming current that can be accommodated by the peripheral drivers or the incoming wiring leads must be considered when attempting to program more than one anti-fuse device simultaneously.

Referring to FIG. 8, a basic unit circuit for programming an anti-fuse device, for observing a voltage at a node adjacent n anti-fuse device, and for injecting a voltage at a node adjacent an anti-fuse device is shown. This circuit includes a first plurality of anti-fuse devices AF100-n, n=1, 2, 3, connected in series, each anti-fuse device having a first and second end and a node at each first and second end in the series string, a first supply bus 110 having a voltage driver circuit 115 for passing a selected voltage on supply bus 110, a second supply bus 120 having a voltage driver circuit 125 for passing a voltage on supply bus 120, a first plurality of transistors T8-p, p=1, 2, 3, 4, connecting each of the plurality of anti-fuse devices to the first and second supply buses so that one transistor T8-p connects each node to one of the first and second supply buses 110 and 120 and adjacent nodes are connected to different supply buses, each transistor having an ON and OFF condition, and a control bus network 130 for selectively turning each transistor ON and OFF. The control bus network 130 and transistors T8-p are controlled by control logic circuit means for selectively turning transistors T8-p ON and OFF to connect nodes to a supply bus (in this illustration bus 110 or 120) to program an anti-fuse device AF-100, to monitor the voltage at a node, or to inject a voltage into a node. The control logic circuit is user programmable and is illustrated as including a first logic control means 160 having a voltage driver circuit 165 for turning ON the one transistor connected to a selected node, e.g., T8-4, so that the voltage at the selected node appears on the supply bus, e.g., bus 110 connected to the one ON transistor T8-4, for monitoring the voltage at the node. Control logic also includes a second logic control means 150 having a voltage driver circuit 155 for turning ON the one transistor connected to a selected node, e.g., T8-3, so that the voltage on the supply bus connected to the one ON transistor is injected at the selected node. The control logic also includes a third control logic means 140 having voltage driver circuits 145A and 145B for turning ON a first transistor, e.g., T8-1, and a second transistor, e.g., T8-2, which are connected to adjacent nodes so that any voltage difference applied to the first and second supply buses 110 and 120 is applied across the anti-fuse device AF 100-1, connected between the first and second ON transistors, for programming that anti-fuse device.

Preferably, the circuit also includes a first voltage detector 170 for monitoring the voltage on the first supply bus 110, and a second voltage detector 180 for monitoring the voltage on the second supply bus 120.

In the embodiment illustrated in FIG. 8, the first control logic means 160 also controls the first and second voltage detectors 170 and 180 to sense the voltage at the node connected to the one ON transistor.

It should be understood that the first and second control logic means 160 and 150 illustrated in FIG. 8 also could be operated cooperatively to program anti-fuse device AF 100-3 in the same manner that control logic means 140 is used in program anti-fuse device AF-100-1. It also should be understood that the function of first and second control logic means 150 and 160 can be reversed by user choice. Similarly, the circuit illustrated as control logic means 140 also can be reconfigured by the user to operate independently driver circuits 145A and 145B, to perform the voltage monitoring or injection functions attributed to the control logic means 150 and 160. In addition, the "third control logic means" also could be comprised of driver circuits 145B and 155 for programming AF 100-2. Hence, the basic unit of the circuit of this embodiment of the present invention is illustrated by the dashed line 200 which includes one anti-fuse device, two transistors which connect the two ends of the anti-fuse device to different supply buses (which have suitable voltage drivers and voltage monitors), and the portion of the control bus network 130 and control logic circuit means (140, 150, 160) for selectively turning on one or both of the transistors to achieve one of the anti-fuse programming node monitoring and node injection function under user control.

It also should be understood that the basic unit circuit 200 is repeated for each anti-fuse device, although in different embodiments adjacent anti-fuse devices AF-100 may or may not share transistors T8 at the common node. Further, additional supply buses also will have voltage driver circuits and voltage monitoring circuits as in the two buses illustrated. The control bus network 130 may alternatively have any of the network configurations illustrated in any of the embodiments described in this specification, provided that suitable control logic means and transistors T8 are also provided.

The terms "transistor" and "programming transistor" as used herein refers to any circuit element or device that can be used to connect an anti-fuse device between two voltage supply buses, provided that such circuit element or device may be selectively turned ON and OFF to make and break the connection, including without limitation, diodes, bipolar transistors, field effect transistors, MOSFET type transistors, and equivalent structures, preferably MOSFET type transistors which can be readily formed as part of the integrated circuit containing the anti-fuse devices.

Advantageously, the present invention discloses an anti-fuse device programming circuit and interconnection structures which require only two series programming transistors to program an anti-fuse device, and which result in a larger percentage of the programming voltage appearing across the anti-fuse device than is available with the prior known devices. This permits the use of smaller programming transistors resulting in smaller chip size or conversely, higher programming currents could be used for faster operation. In addition, lower programming voltages could be used which may be required by newer processes.

Another advantage of the invention is that each anti-fuse device may be programmed to conduct signals with the sane speed, unless otherwise programmed. In this regard, the anti-fuse devices may be differently programmed to minimize signal race conditions of logic signals. This occurs when two signals travel along different length signal paths to the same end point and thus might reach the end point at different times. By suitable programming of the anti-fuse device, a lower impedance can be implemented in the longer path so that the signals reach the same end point effectively simultaneously.

The present invention also permits the use of low impedance supply buses, made of materials such as metal, which can extend across an entire chip without need for intermediate ground connections or partitions circuits which limit the length of the conductor run. The invention also overcomes the need to produce "safe" intermediate voltages so as not to program non-targeted anti-fuse devices as required by the prior art U.S. Pat. No. 4,876,459, and eliminates the need for a separate network of series-bypass transistors and control buses for each anti-fuse device as in the prior art devices. Further, the present invention permits the formulation of simple to follow anti-fuse device programming rules. The preferred embodiments illustrated and described with respect to the drawings herein are given by way of example only. In view of the above description, it will be obvious to one of ordinary skill in the art to make various modifications and changes without departing from the spirit and scope of the present invention. 

I claim:
 1. A circuit for selectively programming anti-fuse devices that are connected to form an array of anti-fuse devices, to minimize signal race conditions of logic signals, comprising:a plurality of anti-fuse devices connected in series strings to form columns of anti-fuse devices in the array, each anti-fuse device having a first node at a first end and second node at a second end; a first voltage supply bus; a second voltage supply bus; a plurality of first and second transistors each having a control terminal for placing the transistor in an ON condition, wherein each first transistor connects the first node of an anti-fuse device to the first voltage supply bus and each second transistor connects the second node of an anti-fuse device to the second voltage supply bus; a plurality of control bus lines connected to the control terminals of each of the plurality of first and second transistors, operable to turn ON selected transistors; and a control logic circuit connected to the control bus lines operable to program selected anti-fuse devices such that a voltage appears across an anti-fuse device and a current is delivered to that anti-fuse device to program it to a desired impedance.
 2. The apparatus of claim 1, wherein the control logic circuit comprises:a first logic control means having a first voltage driver circuit; and a second logic control means having a second voltage driver circuit, wherein the first and second logic control means operate cooperatively to program a selected anti-fuse device.
 3. The apparatus of claim 1, wherein the control logic circuit comprises:first and a second voltage driver circuits for turning ON a first and a second transistor connected to adjacent nodes of a selected anti-fuse device, to program that anti-fuse device.
 4. The apparatus of claim 1, further comprising:a first voltage detector for monitoring the first voltage supply bus; and a second voltage detector for monitoring the second voltage supply bus. 